package com.base.monitor.module.biz.message.impl;

import cn.hutool.core.util.StrUtil;
import com.base.monitor.model.constant.CollectConstant;
import com.base.monitor.module.biz.context.ClientContext;
import com.base.monitor.module.biz.message.Message;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 定时采集命令
 */
@Component
@Slf4j
public class CollectMessage implements Message {
    /**
     * 消息类型
     *
     * @return
     */
    @Override
    public String messageType() {
        return CollectConstant.MESSAGE_TYPE_IS_COLLECT;
    }

    /**
     * 处理消息
     * @param ctx netty客户端通道信息
     * @param message 消息内容
     */
    @Override
    public void handle(ChannelHandlerContext ctx, String message) {
        log.info("处理ip为{}的采集命令消息，消息内容为{}", ctx.channel().remoteAddress(), message);
        if (StrUtil.isBlank(message)) {
            return;
        }
        // 将其加入ClientContext中的sendCollectMap
        ClientContext.addSendCollect(ctx.channel().remoteAddress().toString(), "1");
    }
}
